#ifndef DICEGAME_H
#define DICEGAME_H

class CrapsConnection;

/***************************************************************************************************
* This class serves to define a common "generic" interface that the CrapsConnection object can use
* to talk to the game objects without knowing exactly what type of game it is...sicbo or craps.
* kharmon.  06-16-06.  #3077.  Added for SicBo.
****************************************************************************************************/
class DiceGame
{
public:

    static DiceGame * CreateGame(CrapsConnection *pConnection);

    virtual ~DiceGame() { };

    // lets games examine incoming messages to see if the game should process them.
    virtual bool8 handleMessage(unsigned char *pucMsgBuf, int32 nMsgLen) = 0;

    // used to allow the game object to send game specific start up information to the client
    virtual void send(bool8 bSaved) = 0;

    // if the player exits the game without finishing, this tells the game object to 
    // save its state to the DB for later retrieval
    virtual void save() = 0;

};

#endif